Introducción al análisis de datos en R

Flujo típico de un proyecto


Flujo simple de un proyecto

Nuestro primer (mini)proyecto


Sabemos que en Colombia la inflación se ha acelerado, sin embargo, no en todas las ciudades se ha comportado de la misma manera.

1. Pregunta ¿Cómo ha diferido el comportamiento de la inflación anual entre ciudades del Caribe y el centro?

Para responder esta pregunta procederémos de la siguiente manera

  • Paso 1: Conseguir los datos relevantes. En este caso, el IPC por ciudades calculado por el DANE

  • Paso 1: Elegir 3 ciudades

  • Paso 2: Calcular la inflación anual

  • Paso 3: Decidir como comunicamos nuestro hallazgo. En este caso, haremos una gráfica


2. Datos Usamos el Índice de Precios al Consumidor, IPC, calculado mensualmente por el DANE. En el Repositorio del curso puede descargar los datos IPC

En esta fase debemos limpiar y organizar los datos para poder realizar el análisis. Esta parte es muy importante, a veces no es tan emocionante, pero es imprescindible. Como en todo modelo, Si entra basura sale basura.

  • Paso 1: Cargar los datos. Siempre fíjese bien en el formato de los datos. En este caso el archivo de origen es excel, xlsx


library(readxl)
ipc <- read_excel("C:/Users/andresmv/OneDrive - Universidad del Norte/Drive/Uninorte/Uninorte-docencia/Data analytics/viernes_code/viernes_code/data/ipc.xls")
head(ipc)
# A tibble: 6 x 4
  year  ciudad         ipc   mes
  <chr> <chr>        <dbl> <dbl>
1 2018  MEDELLÍN      97.0     1
2 2018  BARRANQUILLA  97.3     1
3 2018  IBAGUÉ        97.9     1
4 2018  SINCELEJO     97.2     1
5 2018  BUCARAMANGA   98.2     1
6 2018  PEREIRA       97.7     1


es un lenguaje orientado a objetos. En nuestro casso, el objeto ipc que observamos en la ventana Environment es del tipo dataframe. Es ecir, una arreglo matricial de datos, donde en cada fila tenemos las observaciones y en cada columna las variables.


class(ipc)
[1] "tbl_df"     "tbl"        "data.frame"


  • Paso 2: elegir 3 ciudades.


library(dplyr)
ipcs<-filter(ipc,ciudad=="BARRANQUILLA" | ciudad=="BOGOTÁ, D.C." | ciudad=="CALI")


  • Paso 3: Crear variables

En la base de datos tenemos una columna que identifica el año y otra que identifica el mes. Necesitamos tener una nueva columna que tenga la fecha completa


library(lubridate)
ipcs$dia<-1
ipcs<-mutate(ipcs,date=make_date(year,mes,dia))


3. “Algoritmo”

Recuerde que la inflación se computa como la variación porcentual de IPC, y en este caso la variación se toma comparando el mes de un año con el mismo mes del año anterior. Así, por ejemplo, la inflación anual de agosto 2002 sería


\[ Inflación_{ag22}=\dfrac{ipc_{ag22}}{ipc_{ago21}}-1 \]

Para ilustrar, hagamos el cálculo únicamente para la ciudad de Barranquilla


baq<-filter(ipcs,ciudad=="BARRANQUILLA")
baq<-mutate(baq,inf=((ipc/lag(ipc,n=12L))-1)*100)


El cálculo lo debemos hacer para cada ciudad. Teniendo en cuenta que nuestros datos están estructurados en formato largo (las ciudades son categorías de la variable ciudad). Para ello, ampliaremos el código anterior con la función group_by


ipcs<-ipcs%>%group_by(ciudad)%>%mutate(inf=((ipc/lag(ipc,n=12L))-1)*100)


4. Comunicación

Vamos a comunicar nuestro resultado usando una gráfica de lineas que muestre la evolución temporal de la inflación para cada ciudad. Usaremos la biblioteca ggplot2 para graficar. Primero ilustramos con el gráfico únicamente para la ciudad de Barranquilla


library(ggplot2)
baq<-na.omit(baq)
baq.plot<-ggplot(baq,aes(x=date,y=inf))+geom_line()
baq.plot


El gráfico con las 3 ciudades lo construimos de la siguiente manera


ipcs<-na.omit(ipcs)
inf.plot<-ggplot(ipcs,aes(x=date,y=inf,colour=ciudad))+geom_line()
inf.plot


La presentación del gráfico la podemos mejorar.



También la podemos hacer interactiva